package com.design.behavioral;

import java.util.Arrays;
import java.util.Comparator;

/**
 * 策略模式：定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。
 */
public class StrategyDemo {
    public static void main(String[] args) {
        Integer[] integers = {1, 42, 31, 5, 16, 3, 1};

        // 其内 TimSort 为归并排序
        // Comparator 为策略抽象接口，其下有各种策略实现类
        Arrays.sort(integers, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        });

        System.out.println(Arrays.toString(integers));
    }
}
